package sv.ues.fia.activities;

import java.util.List;

import sv.ues.fia.R;
import sv.ues.fia.bdcontrol.ControlBDHelper;
import sv.ues.fia.entity.DocenteAsignado;
import sv.ues.fia.session.UsuarioActual;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import android.app.Activity;

public class DocenteAsignadoUpdateActivity extends Activity {
	ControlBDHelper dbHelper;

	@Override
	public void onCreate(Bundle saved) {
		super.onCreate(saved);

		dbHelper = new ControlBDHelper(this);

		final DocenteAsignado docAsigRecibido = (DocenteAsignado) UsuarioActual
				.getOBJECT();

		setContentView(R.layout.activity_docasignado_modificar);

		final EditText edtIdDocente = (EditText) findViewById(R.id.idUpDocente);
		final EditText edtIdTG = (EditText) findViewById(R.id.idUpTG);
		final EditText edtAnioAsig = (EditText) findViewById(R.id.edtAnioAsig);
		final Spinner spTipoDocent = (Spinner) findViewById(R.id.spTipoDocente);
		final EditText edtPercetDocente = (EditText) findViewById(R.id.edtPercetDocente);

		TextView actualTypeDoc = (TextView) findViewById(R.id.actualTypeDoc);
		final TextView tvUpPorcent = (TextView) findViewById(R.id.tvUpPercent);

		Button btnUpdate = (Button) findViewById(R.id.btnUpdateDocAsig);

		edtIdDocente.setText(docAsigRecibido.getIdDocente());
		edtIdTG.setText(docAsigRecibido.getIdTG());
		edtAnioAsig.setText(String.valueOf(docAsigRecibido.getAnioAsignado()));
		String previusLabel = DocenteAsignadoUpdateActivity.this
				.getString(R.string.previus);
		if (docAsigRecibido.getTipoDocente() == 'O') {
			previusLabel = previusLabel
					+ " "
					+ DocenteAsignadoUpdateActivity.this
							.getString(R.string.observador);
		} else {
			previusLabel = previusLabel
					+ " "
					+ DocenteAsignadoUpdateActivity.this
							.getString(R.string.director);
		}
		actualTypeDoc.setText(previusLabel);

		/** Colocar porcentaje maximo **/
		dbHelper.abrir();
		final List<DocenteAsignado> listaPorcent = dbHelper.consultarDocAsig(
				"", docAsigRecibido.getIdTG());
		dbHelper.cerrar();

		float porcentTotal = 100F + docAsigRecibido.getPorcentNota();
		for (DocenteAsignado x : listaPorcent) {
			porcentTotal -= x.getPorcentNota();
		}

		tvUpPorcent.setText(this.getString(R.string.requiredPorcent) + " "
				+ String.valueOf(porcentTotal));

		edtPercetDocente.setText(String.valueOf(docAsigRecibido
				.getPorcentNota()));

		btnUpdate.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View v) {
				
				if(edtPercetDocente.getText().toString().isEmpty()){
					Toast.makeText(DocenteAsignadoUpdateActivity.this, DocenteAsignadoUpdateActivity.this.getString(R.string.emptyForm),
							Toast.LENGTH_LONG).show();
				}else{

					/** Colocar porcentaje maximo **/
					
					boolean noExiste = true;
					int tipoDocentePosition = spTipoDocent
							.getSelectedItemPosition();
					char tipoDocente;
					if (tipoDocentePosition == 0) {
						tipoDocente = 'D';
					} else {
						tipoDocente = 'O';
					}
					
					float porcentTotal = 100 - Float.valueOf(edtPercetDocente.getText()
							.toString()) + docAsigRecibido.getPorcentNota();
					for (DocenteAsignado x : listaPorcent) {
						porcentTotal -= x.getPorcentNota();
						if(x.getTipoDocente()==tipoDocente)
							noExiste = false;
					}
	
					if (porcentTotal >= 0 && noExiste) {
	
			
	
						DocenteAsignado oldDocAsig = new DocenteAsignado();
	
						oldDocAsig.setAnioAsignado(Integer.valueOf(edtAnioAsig.getText().toString()));
						oldDocAsig.setIdDocente(edtIdDocente.getText().toString());
						oldDocAsig.setIdTG(edtIdTG.getText().toString());
						oldDocAsig.setPorcentNota(Float.valueOf(edtPercetDocente.getText().toString()));
						oldDocAsig.setTipoDocente(tipoDocente);
	
						dbHelper.abrir();
						Toast.makeText(DocenteAsignadoUpdateActivity.this,
								dbHelper.modificar(oldDocAsig), Toast.LENGTH_SHORT)
								.show();
						dbHelper.cerrar();
	
						UsuarioActual.setOBJECT(null);
	
						DocenteAsignadoUpdateActivity.this.finish();
					} else {
	
						if(!noExiste){
							
							Toast.makeText(DocenteAsignadoUpdateActivity.this, DocenteAsignadoUpdateActivity.this.getString(R.string.typeDuplicated),
									Toast.LENGTH_LONG).show();
							
						}else{
							
							Toast.makeText(DocenteAsignadoUpdateActivity.this, DocenteAsignadoUpdateActivity.this.getString(R.string.percentExceed),
									Toast.LENGTH_LONG).show();
						
						}
						
					}
				
				}

			}
		});

	}
}
